This invention pertains generally to resource management in a session-based embedded web server system, and more particularly to a method and system for implementing a pointer-based clipboard mechanism in a session-based embedded web server system.
A clipboard is a temporary storage area that is used by users and application software to hold data that has been cut or copied from a document. When a user edits a document in an embedded server environment, data that is cut or copied is typically stored in a clipboard. The data stored in a clipboard is suitably pasted into another folder, document or location within the same document. However, embedded servers generally have limited memory and storage resources. Implementing a clipboard generally requires a large buffer storage space to store data and generally consumes significant processing time to transfer data to and from the clipboard. When document data is in raster image format, as when a controller of a digital imaging device (“DID”) functions as an embedded server, the storage requirement for implementing a clipboard is particularly large and the negative impact on server processing performance is even more severe than when document data is in non-raster image format. This is due to the fact that raster image files are large files that require significant storage space.
Digital imaging devices (“DID”) are complex machines that often perform a plurality of functions. DIDs suitably include devices such as printers, fax machines, scanners, copiers, multi-functional peripherals (“MFPs”), and other like peripheral devices. DIDs are suitably connected to a network or directly to computer. In addition, DIDs are also suitably servers, with all the necessary hardware and software to ensure proper operation of the server as will be appreciated by one skilled in the art. A DID server is also suitably a server of any type, including a web server, an embedded server, a database server, etc. as will be appreciated by one skilled in the art.
Because multiple users have access to an embedded server and because each user can run concurrent multiple sessions with the embedded server, such as a DID, a separate clipboard is suitably created for each user and for each session. The additional storage space and server time required to implement a plurality clipboards decreases the efficiency of the DID because the processing time and storage space required to implement the clipboards cannot be used for document processing and printing.
There are a variety of methods known in the art for improving processor performance in servers, especially servers with multiple processors. For example, symmetric multi-processing (“SMP”) has become the de facto standard for multi-processor hardware architectures. Several highly popular operating systems (“OS”) incorporate support for SMP. The basic abstraction of an SMP system is a Multi-Threaded Environment (“MTE”), which is provided by the OS without regard to the actual number of processors running. Therefore, when software is written to make use of a MTE, one can achieve a performance improvement whether or not the SMP hardware platform contains multiple processors.
However, even though improved processor performance can be achieved through the use of SMP, it is always preferable to decrease required resources, both in processing and storage. Therefore, it would be preferable if there were an improved method of providing a clipboard that utilizes fewer resources.